// 格式化展示时间
// srvTime:1595988034662 time: "2020-07-28 18:17:24"
export const formatTime = (srvTime: number, time: string) => {
  time = time.replace(/(\d+)(:\d+)(:\d+)$/g, '$1$2'); // 格式化 time 为 "2020-07-28 18:17" 类型
  const timeFormatted = time.replace(/-/g, '/');
  const contentDate = new Date(timeFormatted);
  const nowDate = new Date(srvTime);
  // 若是非当年，则显示带年份的绝对时间，即详细日期+时间（例：2019-04-01 19:48）
  if (contentDate.getFullYear() != nowDate.getFullYear()) {
    return time;
  }
  const contentDateSpecified = new Date(
    `${contentDate.getFullYear}/${contentDate.getMonth() +
    1}/${contentDate.getDate()}`
  );
  const nowDateSpecified = new Date(
    `${nowDate.getFullYear}/${nowDate.getMonth() + 1}/${nowDate.getDate()}`
  );
  const dateDiff = nowDateSpecified.getTime() - contentDateSpecified.getTime();

  // 一天的毫秒数
  const dayMs = 24 * 60 * 60 * 1000;
  // 若是3天前，则显示绝对时间，即详细日期+时间（例：04-01 19:48）；
  // 2020-7-26
  if (dateDiff >= 3 * dayMs) {
    return `${contentDate.getMonth() + 1}-${contentDate.getDate()} ${time.split(' ')[1]}`;
  }
  // 若是昨天和前天，则显示相对时间（例：昨天 19:48、前天 19:48）；
  if (dateDiff >= 2 * dayMs) {
    return `前天 ${time.split(' ')[1]}`;
  }
  if (dateDiff >= 1 * dayMs) {
    return `昨天 ${time.split(' ')[1]}`;
  }

  // 若是当天，则显示绝对时间，即详细时间（例：19:48）；
  return time.split(' ')[1];
};
